qx.Class.define("caraffa.widgets.DuracionTurno",
{
extend : qx.ui.core.Widget,
construct : function (medicos)
{
	this.base(arguments);
	this._setLayout(new qx.ui.layout.HBox());
	
	if (medicos == null)
			medicos = false;
			
	this._medicos = medicos;
	    
    // RPC
    this.rpcDuracionTurno = new qx.io.remote.Rpc();
		this.rpcDuracionTurno.setTimeout(10000);
		this.rpcDuracionTurno.setUrl("services/");
		this.rpcDuracionTurno.setServiceName("duracionTurno");
	
		this._grpTurno = new qx.ui.groupbox.GroupBox();
			this._grpTurno.setLayout(new qx.ui.layout.HBox(10));
			this._cmbMedicos = new qx.ui.form.ow.ComboFilter("Medico:", "", this._medicos);
			this._cmbMedicos.getLabel().setWidth(80);
			this._cmbMedicos.getCombo().setWidth(250);
			
			var rpc = new qx.io.remote.Rpc().set({timeout:10000, url:"services/", serviceName:"duracionTurno"});
			try {
				var params = new Object();
				params.medicos = this._medicos;
				var result = rpc.callSync("getMedicos", params);
				this._cmbMedicos.setNewValues(result, this._medicos);
			}
			catch (ex) {
				alert(ex);
			}
			
			this._cmbMedicos.addListener("changeValue", this._getDuracionTurno	, this);
			
			var duracionTurnos = [{value:"5"},{value:"10"},{value:"12"},{value:"15"},{value:"20"},{value:"30"},{value:"60"}];
			this._cmbDuracionTurno = new qx.ui.form.ow.ComboBox("Duración Turno: <br><small>(En minutos)</small>",duracionTurnos, true);
			this._btnAceptar = new qx.ui.form.Button("Aceptar", "caraffa/16/visto.png");
		this._grpTurno.add(this._cmbMedicos);
		this._grpTurno.add(this._cmbDuracionTurno);
		this._grpTurno.add(this._btnAceptar);
		
		this._cmbMedicos.setEnabled(this._medicos);
		
	this._add(this._grpTurno);
	this._attachEvents();	
},
members : 
{
	_attachEvents : function (){
		this.addListener('appear', this._initForm, this);
		this._btnAceptar.addListener('execute', this._setDuracionTurno, this);
	},
	_initForm : function(){
		this._getDuracionTurno();
	},
	_getDuracionTurno: function(){
			try{
				var params = new Object();
				params.medico = this._cmbMedicos.getValue();
				if (this._cmbMedicos.getValue() != "")
				{
					var result = this.rpcDuracionTurno.callSync("getDuracionTurno", params);
					this._cmbDuracionTurno.setValueDisplay(result);
				}
				else
				{
					this._cmbDuracionTurno.setValue("")
				}
			}
			catch(ex){
				alert("Error: " + ex);
			}			
	},
	_setDuracionTurno: function(){
			try{
				if (this._cmbDuracionTurno.getValue() != "")
				{
					this.rpcDuracionTurno.callSync("setDuracionTurno", this._cmbDuracionTurno.getValue(), this._cmbMedicos.getValue());
					alert("Cambio Correcto");
				}
				else
				{
					alert("Debe seleccionar el tiempo del turno para poder guardar.");
				}
			}
			catch(ex){
				alert("Error: " + ex);
			}			
	}


}
});
